/******************************************************************************
 *      Mestrado em Ciência da Computação - UFMS
 *		Redes de Computadores - Prof. Dr. Ronaldo Alves Ferreira
 *		Alunos: Geraldo Landre, Marcel Tolentino, Vinícius Bueno
 *****************************************************************************/
 
#ifndef ACCESS_H
#define ACCESS_H

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <pthread.h>


#include "base.h"
#include "dirmanip.h"

#define ACCESSLIST "/home/user/Mestrado/t1-redes-mcc-2011/access_list.conf"

pthread_mutex_t access_semaphore;

typedef struct access
{
  vstring *url;
  int type;
  int asterisc_begin;
  struct access *next;
}list;

// cria o inicio da lista
list *root;

/*atualizar a lista encadeada com novas informaçoes*/
void refresh_list();

/* extrai as informações da linha do arquivo access list */
void get_archive_line(vstring *line);

/*Remove todo o conteudo da Lista Encadeada de Acessos*/
void clear_accesslist();

/*Busca a Url na Lista de Acessos e verifica se ela é permitada ou não*/
int has_permission(vstring *url);

void print();

/*Retira as informações relevantes do arquivo para criar a lista na memoria*/
void create_access_list();

#endif
